草庐IT

NIO 缓冲区

全部标签

windows - 如何在 C/C++ 中检查 Windows 中管道的剩余缓冲区大小?

顺便说一句,如果另一端从中读取数据,剩余缓冲区会自动增加,对吗? 最佳答案 PeekNamedPipe怎么样??似乎以下将返回要从管道中读取的剩余字节总数。DWORDtotalBytesAvailable;BOOLWINAPIPeekNamedPipe(handle,//__inHANDLEhNamedPipe,NULL,//__out_optLPVOIDlpBuffer,0,//__inDWORDnBufferSize,NULL,//__out_optLPDWORDlpBytesRead,&totalBytesAvailable,

windows - 在 Windows 中修改帧缓冲区

有没有办法在绘制之前修改帧缓冲区?假设我想在任何桌面应用程序的整个屏幕中将红色值设置为零。1)捕获绘图事件并获取帧缓冲区2)获取每个像素并将R=0设置为RGB值(使用GPU语言以避免GPU->CPU内存传输)3)绘制修改后的帧缓冲区 最佳答案 哈,我找到了你可能正在寻找的东西:直接内核对象操作它是一个WindowsAPI,可以编写这样的过滤器驱动程序,您正在寻找。他们可以授予您对内核内存的完全访问权限并让您修改它。到目前为止,您可以Hook文件系统和位置,因为内核内存本身和较低级别的网络管理,甚至可以使操作系统本身崩溃,我敢打赌您可

python - 可以存储在套接字缓冲区中的最大 UDP 数据包数? (Ubuntu)

客户:importsockets=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)msg=b"X"foriinrange(1500):s.sendto(msg,("",))服务器:importsockets=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)s.bind(("",>PORT>))counter=0foriinrange(1500):s.recv(1)counter+=1我有两台机器-第一台装有Windows7,第二台装有Ubuntu16.04。现在的问题:如果我尝试从客户端向服务器

windows - 堆栈缓冲区溢出(Windows、C++): how can I detect the culprit?

Windows上是否有任何工具/库可以帮助我找到罪魁祸首?这是一个相当大的代码库,具有多个线程。我主要为Linux编写代码;Windows是一个陌生的领域。感谢您的输入。 最佳答案 对于堆栈缓冲区,使用/GS编译,参见CompilerSecurityChecksInDepth对于堆缓冲区,您可以尝试使用堆gflag,参见GFlagsandPageHeap,但需要小心,因为所有分配,无论大小,都会有自己的页面。 关于windows-堆栈缓冲区溢出(Windows、C++):howcanId

windows - 您可以在 Windows wave 音频输入中重复使用缓冲区吗?

我正在使用Windows多媒体API来记录和处理波形音频(waveInOpen和friend)。我想以循环方式使用少量缓冲区。我知道你应该在向设备添加缓冲区之前使用waveInPrepareHeader,并且你应该在wave设备有“将缓冲区返回给应用程序”,然后再释放它。我的问题是,我是否必须取消准备并重新准备才能重新使用缓冲区?或者我可以将以前使用过的缓冲区添加回设备吗?此外,我在哪个线程上执行此操作重要吗?我正在使用回调函数,它似乎是在属于音频系统的工作线程上调用的。我可以在回调期间在该线程上调用waveInUnprepareHeader、waveInPrepareHeader和w

windows - 为什么在 Internet Explorer 中写入缓冲的 html 页面?有办法解决吗?

我已经为使用客户端PerlScript的IE编写了一个非常小的html页面。在脚本中,我启动了一个创建TCP套接字的单独进程。启动该过程后,我启动了一个监听器,它在读取行时将HTML附加到div的末尾,另外为了调试,我在读取每一行时添加了警报。问题是警报会在读取行时命中,但HTML不会更新,直到该过程完成。这是为什么?有没有办法强制呈现页面,以便我可以获得相同的行为?这是页面:MessageTestuseutil;useWin32::Process;my$alreadyrunflag=0;sub_write{$window->document->body->insertAdjacent

c++ - Windows 中的串行通信 - ClearCommError 在读取缓冲区中找不到数据

我想使用串行通信(使用USB到RS232转换器)将数据从笔记本电脑(windows7,处理器2.60GHz)发送到台式机(windowsxp,处理器3.10GHz)。WriteFile函数能够从笔记本电脑发送数据(NumberOfBytesWritten是正确的)。但是在桌面端,ClearCommError检测到读取缓冲区中没有数据。这是我桌面上的相关代码:while(1){ClearCommError(hPort,&dwErrors,&commStatus);if(commStatus.cbInQue!=0)ReadFile(hPort,&data,1,&dwBytesRead,NU

c++ - 具有透明缓冲区的 DirectX11 ClearRenderTargetViewback?

我正在尝试创建一个使用directx在透明View(即桌面显示)之上绘制不透明内容的窗口。使用DirectX11,我正在尝试执行以下操作,但它不会使背景透明。事实上,我输入的任何不透明度值都会给我完全相同的结果。我在做什么:floatcolor[4]={0.0f,0.0f,0.0f,0.0f};deviceContext->ClearRenderTargetView(backBuffer,color);工作重现代码(main.cpp):#include#include#pragmacomment(lib,"Winmm.lib")#include#pragmacomment(lib,"d

c++ - Windows 上的 WASAPI 捕获缓冲区大小

我使用WASAPI在Windows7上以共享模式捕获音频缓冲区。我使用的扬声器只能有48kHz、96kHz、192kHz或44.1kHz采样率。我的声卡是Realtek高清声卡。我需要知道如果我在另一个操作系统(如WindowsVista或Windows8)上执行我的程序,WASAPI的行为是否会有所不同。此外,我需要知道getBuffer是否会为使用不同硬件(不同声卡)的捕获缓冲区检索相同大小。我自己无法测试,在网上也找不到太多细节。但是我的程序必须在具有不同版本的Windows和不同硬件的不同计算机上运行。如果捕获的缓冲区大小不同,我的程序将无法在另一台计算机上正常运行。如果有人知

windows - 如何在控制台中检测当前是否启用了 Windows 10 缓冲区环绕模式

有什么方法可以检测控制台应用程序是否在启用Windows10新功能的情况下运行?ThisMSDNpage显示HKEY_CURRENT_USER\Console\ForceV2、HKEY_CURRENT_USER\Console\LineWrap和HKEY_CURRENT_USER\Console\{name}\LineWrap控制它,但除此之外解析不那么健壮,它可能不正确。如果用户切换到旧模式或从旧模式切换,更改将在控制台重新启动后才会生效。如果我开发应用程序,我可以在启动时进行检查。但是可能存在竞争条件,这使得注册表检查对于任何实际使用都毫无用处。我很好奇第三方控制台窗口的解决方案是